package com.misweb.ibase;

import android.content.Context;
import android.util.Log;


/**
 * Created by shicheng on 2015/4/2.
 */

public class CrashHandler implements Thread.UncaughtExceptionHandler {

        private static CrashHandler instance;  //单例引用，这里我们做成单例的，因为我们一个应用程序里面只需要一个UncaughtExceptionHandler实例

        private CrashHandler(){}

        public synchronized static CrashHandler getInstance(){  //同步方法，以免单例多线程环境下出现异常
            if (instance == null){
                instance = new CrashHandler();
            }
            return instance;
        }

        public void init(Context ctx){  //初始化，把当前对象设置成UncaughtExceptionHandler处理器
            Thread.setDefaultUncaughtExceptionHandler(this);
        }

        @Override
        public void uncaughtException(Thread thread, Throwable ex) {


            //当有未处理的异常发生时，就会来到这里  此处为全局异常处理  建议 自己处理可预见异常，不要把所有东西都抛给我
            Log.e("全局异常：", " name: " + thread.getName() + " id: " + thread.getId() + "exception: " + ex);

        }

    }

